home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-04-03 | 4.3 KB | 131 lines | [TEXT/MPS ] |
- //----------------------------------------------------------------------------------------
- // UStringHandle.cp
- // Copyright © 1985-96 by Apple Computer, Inc. All rights reserved.
- //----------------------------------------------------------------------------------------
-
- /*
- 3/30/96 srf Use TDynamicArray.
- Change History:
- 3/18/95 TWB Change Free methods to destructors.
- 10/12/94 TWB Split off from MABuildTool.
- 7/13/94 TWB Merge with MABuildToolFT and MABuildToolRSRC.
- 7/13/94 TWB Update version to 3.1.1.
- 6/27/94 TWB BuildFolder can now be accessed within the
- MAMake file.
- */
-
- #ifndef __USTRINGHANDLE__
- #include "UStringHandle.h"
- #endif
-
- //----------------------------------------------------------------------------------------
- // NewTStringHandle:
- //----------------------------------------------------------------------------------------
- #pragma segment TRes
-
- TStringHandle* NewTStringHandle()
- {
- TStringHandle* aTStringHandle;
-
- aTStringHandle = new TStringHandle;
- aTStringHandle->IStringHandle();
- return aTStringHandle;
- }
-
- //========================================================================================
- // CLASS TStringHandle
- //========================================================================================
- #undef Inherited
- #define Inherited TObject
-
- #pragma segment TRes
- MA_DEFINE_CLASS_M1(TStringHandle, Inherited);
-
- //----------------------------------------------------------------------------------------
- // TStringHandle constructor
- //----------------------------------------------------------------------------------------
- #pragma segment TRes
-
- TStringHandle::TStringHandle() :
- fText(NULL)
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TStringHandle::WriteToFile:
- //----------------------------------------------------------------------------------------
- #pragma segment TRes
-
- void TStringHandle::WriteToFile(FILE* theFile)
- {
- fwrite((*fText)[0], (size_t)fText->GetSize(), 1, theFile);
- }
-
- //----------------------------------------------------------------------------------------
- // TStringHandle::AsStr255:
- //----------------------------------------------------------------------------------------
- #pragma segment TRes
-
- void TStringHandle::AsStr255 (CStr255& theString)
- {
- theString.Length() = Min(fText->GetSize(), kStr255Len);;
- theString.CopyFrom((*fText)[0], theString.Length());
- }
-
- //----------------------------------------------------------------------------------------
- // TStringHandle::AsStr255:
- //----------------------------------------------------------------------------------------
- #pragma segment TRes
-
- CStr255 TStringHandle::AsStr255 ()
- {
- return CStr255((*fText)[0], Min(fText->GetSize(), kStr255Len));
- }
-
- //----------------------------------------------------------------------------------------
- // TStringHandle::IStringHandle:
- //----------------------------------------------------------------------------------------
- #pragma segment TRes
-
- void TStringHandle::IStringHandle()
- {
- fText = new TDynamicArray;
- fText->IDynamicArray(0, sizeof(unsigned char));
- fText->fAllocationIncrement = kStr255Len + 1;
- }
-
- //----------------------------------------------------------------------------------------
- // TStringHandle::Free:
- //----------------------------------------------------------------------------------------
- #pragma segment TRes
-
- TStringHandle::~TStringHandle()
- {
- fText = (TDynamicArray*)FreeIfObject(fText);
- }
-
- //----------------------------------------------------------------------------------------
- // TStringHandle::Catenate:
- //----------------------------------------------------------------------------------------
- #pragma segment TRes
-
- void TStringHandle::Catenate(const CStr255& theString)
- {
- fText->InsertElementsBefore(fText->GetSize() + 1, &theString[1], theString.Length());
- }
-
- //----------------------------------------------------------------------------------------
- // TStringHandle::Catenate:
- //----------------------------------------------------------------------------------------
- #pragma segment TRes
-
- void TStringHandle::CatenateToFront(const CStr255& theString)
- {
- fText->InsertElementsBefore(1, &theString[1], theString.Length());
- }
-
- //----------------------------------------------------------------------------------------
- // End of UStringHandle.cp
-
- #pragma segment Inline
-